1. FIELD OF THE INVENTION
The present invention relates to computer systems using a bus bridge(s) to interface a central processor(s), video graphics processor, memory and input-output peripherals together.
2. DESCRIPTION OF THE RELATED TECHNOLOGY
Use of computers, especially personal computers, in business and at home is becoming more and more pervasive because the computer has become an integral tool of most information workers who work in the fields of accounting, law, engineering, insurance, services, sales and the like. Rapid technological improvements in the field of computers have opened up many new applications heretofore unavailable or too expensive for the use of older technology mainframe computers. These personal computers may be used as stand-alone workstations (high end individual personal computers) or linked together in a network by a "network server" which is also a personal computer which may have a few additional features specific to its purpose in the network. The network server may be used to store massive amounts of data, and may facilitate interaction of the individual workstations connected to the network for electronic mail ("E-mail"), document databases, video teleconferencing, whiteboarding, integrated enterprise calendar, virtual engineering design and the like. Multiple network servers may also be interconnected by local area networks ("LAN") and wide area networks ("WAN").
A significant part of the ever increasing popularity of the personal computer, besides its low cost relative to just a few years ago, is its ability to run sophisticated programs and perform many useful and new tasks. Personal computers today may be easily upgraded with new peripheral devices for added flexibility and enhanced performance. A major advance in the performance of personal computers (both workstation and network servers) has been the implementation of sophisticated peripheral devices such as video graphics adapters, local area network interfaces, SCSI bus adapters, full motion video, redundant error checking and correcting disk arrays, and the like. These sophisticated peripheral devices are capable of data transfer rates approaching the native speed of the computer system microprocessor central processing unit ("CPU"). The peripheral devices' data transfer speeds are achieved by connecting the peripheral devices to the microprocessor(s) and associated system random access memory through high speed expansion local buses. Most notably, a high speed expansion local bus standard has emerged that is microprocessor independent and has been embraced by a significant number of peripheral hardware manufacturers and software programmers. This high speed expansion bus standard is called the "Peripheral Component Interconnect" or "PCI." A more complete definition of the PCI local bus may be found in the PCI Local Bus Specification, revision 2.1; PCI/PCI Bridge Specification, revision 1.0; PCI System Design Guide, revision 1.0; and PCI BIOS Specification, revision 2.1, the disclosures of which are hereby incorporated by reference. These PCI specifications are available from the PCI Special Interest Group, P.O. Box 14070, Portland, Oreg. 97214.
A computer system has a plurality of information (data and address) buses such as a host bus, a memory bus, at least one high speed expansion local bus such as the PCI bus, and other peripheral buses such as the Small Computer System Interface (SCSI), Extension to Industry Standard Architecture (EISA), and Industry Standard Architecture (ISA). The microprocessor(s) of the computer system communicates with main memory and with the peripherals that make up the computer system over these various buses. The microprocessor(s) communicates to the main memory over a host bus to memory bus bridge. The peripherals, depending on their data transfer speed requirements, are connected to the various buses which are connected to the microprocessor host bus through bus bridges that detect required actions, arbitrate, and translate both data and addresses between the various buses.
Increasingly sophisticated microprocessors have revolutionized the role of the personal computer by enabling complex applications software to run at mainframe computer speeds. The latest microprocessors have brought the level of technical sophistication to personal computers that, just a few years ago, was available only in mainframe and mini-computer systems. Some representative examples of these new microprocessors are the "PENTIUM" and "PENTIUM PRO" (registered trademarks of Intel Corporation). Advanced microprocessors are also manufactured by Advanced Micro Devices, Cyrix, IBM and Motorola.
These sophisticated microprocessors have, in turn, made possible running complex application programs using advanced three dimensional ("3-D") graphics for computer aided drafting and manufacturing, engineering simulations, games and the like. Increasingly complex 3-D graphics require higher speed access to ever larger amounts of graphics data stored in memory. This memory may be part of the video graphics processor system, but, preferably, would be best (lowest cost) if part of the main computer system memory. Intel Corporation has proposed a low cost but improved 3-D graphics standard called the "Accelerated Graphics Port" (AGP) initiative. With AGP 3-D, graphics data, in particular textures, may be shifted out of the graphics controller local memory to computer system memory. The computer system memory is lower in cost than the graphics controller local memory and is more easily adapted for a multitude of other uses besides storing graphics data.
The proposed Intel AGP 3-D graphics standard defines a high speed data pipeline, or "AGP bus," between the graphics controller and system memory. This AGP bus has sufficient bandwidth for the graphics controller to retrieve textures from system memory without materially affecting computer system performance for other non-graphics operations. The Intel 3-D graphics standard is a specification which provides signal, protocol, electrical, and mechanical specifications for the AGP bus and devices attached thereto. This specification is entitled "Accelerated Graphics Port Interface Specification Revision 1.0," dated Jul. 31, 1996, the disclosure of which is hereby incorporated by reference.
The AGP interface specification uses the 66 MHZ PCI (Revision 2.1) as an operational baseline, with three performance enhancements to the PCI specification which are used to optimize the AGP specification for high performance 3-D graphics applications. These enhancements are: 1) pipelined memory read and write operations, 2) demultiplexing of address and data on the AGP bus by use of sideband signals, and 3) data transfer rates of 133 MHz for data throughput in excess of 500 megabytes per second ("MB/sec."). The remaining AGP specification does not modify the PCI Specification, but rather provides a range of graphics-oriented performance enhancements for use by the 3-D graphics hardware and software designers. The AGP specification is neither meant to replace nor diminish full use of the PCI standard in the computer system. The AGP specification creates an independent and additional high speed local bus for use by 3-D graphics devices such as a graphics controller, wherein the other input-output ("I/O") devices of the computer system may remain on any combination of the PCI, SCSI, EISA and ISA buses.
To functionally enable this AGP 3-D graphics bus, new computer system hardware and software are required. This requires new computer system core logic designed to function as a host bus/memory bus/PCI bus to AGP bus bridge meeting the AGP specification, and new Read Only Memory Basic Input Output System ("ROM BIOS") and Application Programming Interface ("API") software to make the AGP dependent hardware functional in the computer system. The computer system core logic must still meet the PCI standards referenced above and facilitate interfacing the PCI bus(es) to the remainder of the computer system. This adds additional costs to a personal computer system, but is well worth it if 3-D graphics are utilized. Some personal computer uses such as a network server do not require 3-D graphics, but would greatly benefit from having an additional PCI bus with multiple PCI card slots for accepting additional input-output devices such as a network interface card(s) ("NIC"), PCI/JPCI bridge, PCI/SCSI adapter, PCI/EISA/ISA bridge, a wide area network digital router, multiple head graphics, and the like.
AGP and PCI devices serve different purposes and the respective interface cards (e.g., AGP 3-D video controller and PCI NIC) are not physically or electrically interchangeable even though there is some commonality of signal f unctions between the AGP and PCI interface specifications. While AGP capabilities are very desirable in a personal computer utilizing 3-D graphics, it is wasteful and redundant for those personal computers not requiring 3-D capabilities. The cost/performance (i.e., flexibility of the computer for a given price) of a personal computer is of paramount importance for commercial acceptance in the market place. In today's competitive computer industry, technical performance alone does not guarantee commercial success. Technical performance of any personal computer product must be maximized while constantly reducing its manufacturing costs. To achieve a high performance to cost ratio, commonality of components and high volume of use are key factors. Thus, commonality of components such as logic circuits, printed circuit boards, microprocessors, computer boxes and power supplies, will drive the costs down for both workstations and servers. Also the high end workstations and network servers would benefit if one generic model of a personal computer could be effectively used in either capacity. Further benefits in reducing costs may be realized by using common components in portable and desktop (consumer and low end business) computers.
The PCI specification version 2.1 allows for a 33 MHz or 66 MHz, 32 bit PCI bus; and a 33 Mhz or 66 MHz, 64 bit PCI bus. The 33 MHz, 32 bit PCI is capable of up to 132 megabytes per second ("MB/s") peak and 50 MB/s typical, and the 66 MHz, 32 bit PCI bus; and the 33 MHz, 64 bit PCI bus are capable of up to 266 MB/s peak. The AGP bus is capable of up to 532 MB/s peak. PCI interface card vendors are moving toward either 66 MHz, 32 bit or 33 MHz, 64 bit compatible PCI cards for the enhance data throughput performance.
The PCI specification, however, only allows two PCI device cards (two PCI connectors) on a 66 MHz, 32 bit PCI bus, whereas, the 33 MHz, 64 bit PCI bus allows more than two PCI device cards. Both of these embodiments of the PCI specification have the same data throughput. The 33 MHz, 64 bit embodiment allows more PCI device cards on the PCI bus than does the 66 MHz, 32 bit embodiment, but requires more signal lines for operation thereof, i.e., 64 address/data lines versus only 32 address/data lines. The AGP specification comprises a superset of the 66 MHz, 32 bit PCI specification, but has even higher throughput when in its 2X mode.
What is needed is an apparatus, method, and system for a personal computer that may provide an additional 32 bit PCI bus when an AGP bus is not needed by utilizing multiple use high production volume logic and interface circuits having the capability of providing either a PCI or AGP interface.